دانلود نرم افزار - آموزش سی شارپ
دانلود نرم افزار - آموزش سی شارپ

دانلود نرم افزار - آموزش سی شارپ

delegate دلیگیت

delegate

همان طور  که می دانید یک متد می تواند چندین پارامتر با نوع های مختلف را یکجا دریافت نماید.مانند عدد صحیح ، اعشاری و یا رشته اما تا کنون به این فکر کرده اید که آیا می شود یک متد را بعنوان پارامتری به متد دیگر تحویل داد .

اگر قصد چنین کاری را دارید ، متدی را که می خواهید بعنوان پارامتر باشد بایستی بصورت  delegate  تعریف کنید .  

برنامه زیر نمونه ای از کاربرد دلیگیت می باشد .

using System;
namespace deligayt
{
    class Program
    {
        public delegate void Print(int value);
        static void Main(string[] args)
        {
            // Print delegate points to PrintNumber
            Print printDel = PrintNumber;
            printDel(100000);
            printDel(200);
            // Print delegate points to PrintMoney
            printDel = PrintMoney;
            printDel(10000);
            printDel(200);
            Console.ReadLine();
        }
        public static void PrintNumber(int num)
        {
            Console.WriteLine("Number: {0,-12:N0}", num);
        }
        public static void PrintMoney(int money)
        {
            Console.WriteLine("Money: {0:C}", money);
         }         }            }

یک نمونه برنامه دیگر از نحوه استفاده از دلیگیت :


using System;
delegate int NumberChanger(int n);
namespace DelegateAppl {
   class TestDelegate {
      static int num = 10;
            public static int AddNum(int p) {
         num += p;
         return num;
      }
      public static int MultNum(int q) {
         num *= q;
         return num;
      }
      public static int getNum() {
         return num;
      }
      static void Main(string[] args) {
         //create delegate instances
         NumberChanger nc1 = new NumberChanger(AddNum);
         NumberChanger nc2 = new NumberChanger(MultNum);
         //calling the methods using the delegate objects
         nc1(25);
         Console.WriteLine("Value of Num: {0}", getNum());
         nc2(5);
         Console.WriteLine("Value of Num: {0}", getNum());
         Console.ReadKey();               }              }        }

خروجی برنامه بالا بصورت زیر می باشد . - - - - -


Value of Num: 35
Value of Num: 175
نظرات 0 + ارسال نظر
امکان ثبت نظر جدید برای این مطلب وجود ندارد.